package com.java8.time;

import com.java8.time.api.*;

/**
 * <p>Description: [Java8新特性:时间日期处理，18 个 Java8 日期处理的实践]</p>
 * Created on 2020/2/21
 *
 * @author <a href="mailto: 819712047@qq.com">谢振东 </a>
 * @version 1.0
 */
public class apiTest {

    /**
     * Java 8 日期处理
     * Java 8 推出了全新的日期时间API，通过一些简单的实例来学习如何使用新API
     * Java处理日期、日历和时间的方式一直为社区所诟病，
     * 将 java.util.Date设定为可变类型，以及SimpleDateFormat的非线程安全使其应用非常受限。
     * 新API基于ISO标准日历系统，java.time包下的所有类都是不可变类型而且线程安全。
     * <p>
     * 编号	类的名称	描述
     * <p>
     * 1	Instant	时间戳
     * <p>
     * 2	Duration	持续时间，时间差
     * <p>
     * 3	LocalDate	只包含日期，比如：2018-02-05
     * <p>
     * 4	LocalTime	只包含时间，比如：23:12:10
     * <p>
     * 5	LocalDateTime	包含日期和时间，比如：2018-02-05 23:14:21
     * <p>
     * 6	Period	时间段
     * <p>
     * 7	ZoneOffset	时区偏移量，比如：+8:00
     * <p>
     * 8	ZonedDateTime	带时区的时间
     * <p>
     * 9	Clock	时钟，比如获取目前美国纽约的时间
     * <p>
     * 10	java.time.format.DateTimeFormatter	时间格式化
     *
     * @param args
     */
    public static void main(String[] args) {
//        示例1:Java 8中获取今天的日期
        Demo01.master();
//        示例2:Java 8中获取年、月、日信息
        Demo02.master();
//        示例3:Java 8中处理特定日期
        Demo03.master();
//        示例4:Java 8中判断两个日期是否相等
        Demo04.master();
//        示例5:Java 8中检查像生日这种周期性事件
        Demo05.master();
//        示例6:Java 8中获取当前时间
        Demo06.master();
//        示例7:Java 8中获取当前时间
        Demo07.master();
//        示例8:Java 8如何计算一周后的日期
        Demo08.master();
//        示例9:Java 8计算一年前或一年后的日期
        Demo09.master();
//        示例10:Java 8的Clock时钟类
        Demo10.master();
//        示例11:如何用Java判断日期是早于还是晚于另一个日期
        Demo11.master();
//        示例12:Java 8中处理时区
        Demo12.master();
//        示例13:如何表示信用卡到期这类固定日期，答案就在YearMonth
        Demo13.master();
//        示例14:如何在Java 8中检查闰年
        Demo14.master();
//        示例15:计算两个日期之间的天数和月数
        Demo15.master();
//        示例16:在Java 8中获取当前的时间戳
        Demo16.master();
//        示例17:Java 8中如何使用预定义的格式化工具去解析或格式化日期
        Demo17.master();
//        示例18:字符串互转日期类型
        Demo18.master();
    }
}
